/* 
 * File:   DetailDef.h
 * Author: Elevator
 *
 * Created on July 14, 2013, 4:45 PM
 */

#ifndef DATA_DETAILDEF_H
#define DATA_DETAILDEF_H

#include <string>
#include "Common/Common.h"
#include "Model.h"

namespace data {

	class DetailDef {
	public:
		DetailDef(
			std::string name,
			std::string description,
			float mass,
			float inertia,
			float friction,
			float restitution,
			const ICollection<Circle>* vertices,
			const Model* model );

		inline const std::string GetName( ) const {
			return _name;
		}

		inline const std::string GetDescription( ) const {
			return _description;
		}

		inline const float GetMass( ) const {
			return _mass;
		}

		inline const float GetInertia( ) const {
			return _inertia;
		}

		inline const float GetFriction( ) const {
			return _friction;
		}

		inline const float GetRestitution( ) const {
			return _restitution;
		}

		inline const ICollection<Circle>* GetVertices( ) const {
			return _vertices;
		}

		inline const Model* GetModel( ) const {
			return _model;
		}

	private:
		std::string _name;
		std::string _description;
		float _mass;
		float _inertia;
		float _friction;
		float _restitution;
		const ICollection<Circle>* _vertices;
		const Model* _model;
	};
}
#endif	/* DETAILDEF_H */

